pub fn odd_fibnacci_sum(threshold: u32) -> u32 {
    let (mut fi0, mut fi1) = (1u32, 1u32);
    let mut sum = 0u32;

    while fi0 <= threshold {
        if fi0 & 1 == 1 {
            sum += fi0;
        }

        (fi0, fi1) = (fi1, fi0 + fi1);
    }

    sum
}
